package com.data.center.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.Objects;

@Data
public class PersonDto extends BaseDto{

    @ApiModelProperty("人才ID")
    private String personId;

    @ApiModelProperty("姓名")
    private String name;

    @ApiModelProperty("证件类型")
    private String nationalIdType;

    @ApiModelProperty("证件号码")
    private String nationalId;

    @ApiModelProperty("STID")
    private String stid;

    @ApiModelProperty("性别")
    private String gender;

    @ApiModelProperty("出生日期")
    private Date dob;

    @ApiModelProperty("民族")
    private String ethnicGroup;

    @ApiModelProperty("国籍")
    private String nationality;

    @ApiModelProperty("籍贯")
    private String birthplace;

    @ApiModelProperty("政治面貌")
    private String politicalAffiliation;

    @ApiModelProperty("证件照片")
    private String idPhoto;

    @ApiModelProperty("生活照片")
    private String lifePhoto;

    @ApiModelProperty("工作单位")
    private String affiliation;

    @ApiModelProperty("所在部门")
    private String department;

    @ApiModelProperty("行政级别")
    private String positionRank;

    @ApiModelProperty("行政职务")
    private String position;

    @ApiModelProperty("专业技术职务")
    private String title;

    @ApiModelProperty("毕业院校")
    private String graduation;

    @ApiModelProperty("所学专业")
    private String major;

    @ApiModelProperty("最高学历")
    private String education;

    @ApiModelProperty("最高学位")
    private String degree;

    @ApiModelProperty("学科")
    private String disciplines;

    @ApiModelProperty("科研属性")
    private String category;

    @ApiModelProperty("研究方向")
    private String keywords;

    @ApiModelProperty("所在地")
    private String division;

    @ApiModelProperty("详细地址")
    private String address;

    @ApiModelProperty("邮政编码")
    private String postCode;

    @ApiModelProperty("手机")
    private String mobile;

    @ApiModelProperty("传真")
    private String fax;

    @ApiModelProperty("邮箱")
    private String email;

    @ApiModelProperty("电话")
    private String phone;

    @ApiModelProperty("联系人姓名")
    private String contactName;

    @ApiModelProperty("联系人手机")
    private String contactMobile;

    @ApiModelProperty("联系人电话")
    private String contactPhone;

    @ApiModelProperty("银行卡号")
    private String account;

    @ApiModelProperty("开户行")
    private String bank;

    @ApiModelProperty("开户网点")
    private String branch;

    @ApiModelProperty("开户人")
    private String accountOwner;

    @ApiModelProperty("实名认证状态")
    private String authentication;

    @ApiModelProperty("认证人")
    private String authenticator;

    @ApiModelProperty("认证时间")
    private Date authenticateTime;

    @ApiModelProperty("个人状态")
    private String status;

    @ApiModelProperty("修改人")
    private String modifier;

    @ApiModelProperty("最后修改时间")
    private Date lastModifiedTime;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof PersonDto)) return false;
        if (!super.equals(o)) return false;
        PersonDto personDto = (PersonDto) o;
        return Objects.equals(getPersonId(), personDto.getPersonId());
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), getPersonId());
    }
}
